package com.nanjia.boot.outboundorder.model.form;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.Size;
import lombok.Getter;
import lombok.Setter;

import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 商品出库记录表单对象
 *
 * @author 周洋
 * @since 2025-08-22 17:57
 */
@Getter
@Setter
@Schema(description = "商品出库记录表单对象")
public class OutboundOrderForm implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;


    private Long id;

    @Schema(description = "出库单号")
    @Size(max=30, message="出库单号长度不能超过30个字符")
    private String orderNo;

    @Schema(description = "出库类型 销售 配送 样品 退货 召回")
    @Size(max=20, message="出库类型 销售 配送 样品 退货 召回长度不能超过20个字符")
    private String outboundType;

    @Schema(description = "出库总数")
    private Integer totalQuantity;

    @Size(max=3, message="长度不能超过3个字符")
    private String status;

    @Schema(description = "预计发货日期")
    private LocalDate expectedShipDate;

    @Schema(description = "运输信息")
    private String transportInfo;

    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;


    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;

    @Size(max=20, message="长度不能超过20个字符")
    private String createBy;

    private String updateBy;

    @Size(max=40, message="长度不能超过40个字符")
    private String createIp;

    @Size(max=40, message="长度不能超过40个字符")
    private String updateIp;


}
